overlay: Create child window before setting parent
authorBenjamin Otte <otte@redhat.com>
Wed, 7 Dec 2011 23:20:06 +0000 (00:20 +0100)
committerBenjamin Otte <otte@redhat.com>
Wed, 7 Dec 2011 23:24:28 +0000 (00:24 +0100)
Otherwise, the window will not be used when set_parent() maps the child.

gtk/gtkoverlay.c

index e8b66aab4ee048910c1a17b26795f3f8ff2b68c1..db9d1728e69b17b3fa61ce1b6de039fab946aded 100644 (file)
@@ -625,10 +625,14 @@ gtk_overlay_add_overlay (GtkOverlay *overlay,
   child = g_slice_new0 (GtkOverlayChild);
   child->widget = widget;
 
-  gtk_widget_set_parent (widget, GTK_WIDGET (overlay));
-
   priv->children = g_slist_append (priv->children, child);
 
   if (gtk_widget_get_realized (GTK_WIDGET (overlay)))
-    child->window = gtk_overlay_create_child_window (overlay, widget);
+    {
+      child->window = gtk_overlay_create_child_window (overlay, widget);
+      gtk_widget_set_parent (widget, GTK_WIDGET (overlay));
+    }
+  else
+    gtk_widget_set_parent (widget, GTK_WIDGET (overlay));
+
 }